Veri Yürütme Engellemesi (VEB), İngilizce adıyla Data Execution Prevention (DEP), bir bilgisayar güvenliği özelliğidir. Temelde, belleğin belirli alanlarının yalnızca veri depolamak için kullanılması, yürütülebilir kod içermemesi ilkesine dayanır. Bu sayede, kötü amaçlı yazılımların (malware) veri alanlarına kod enjekte ederek sistem üzerinde kontrol sağlaması engellenmeye çalışılır. VEB, hem donanımsal hem de yazılımsal olarak uygulanabilir.
VEB'in kökleri, işletim sistemlerinin ilk dönemlerine kadar uzanır. Ancak, yaygın olarak kullanılmaya başlanması, Microsoft Windows'un Windows XP Service Pack 2 sürümü ile olmuştur. Daha sonra diğer işletim sistemleri de benzer teknolojileri uygulamaya başlamışlardır. Bu teknolojinin geliştirilmesindeki temel motivasyon, buffer overflow ve diğer bellek tabanlı saldırılara karşı bir savunma mekanizması oluşturmaktı.
VEB, belleği "yürütülebilir" ve "yürütülemez" olarak işaretler. Eğer bir işlemci, yürütülemez olarak işaretlenmiş bir bellek alanından kod çalıştırmaya çalışırsa, VEB devreye girer ve bu işlemi durdurur. Bu durum, genellikle bir istisna (exception) tetikleyerek uygulamanın çökmesine veya işletim sisteminin müdahale etmesine neden olur.
VEB'in iki temel uygulama şekli vardır:
Donanımsal VEB: Bu yöntem, işlemcinin NX bit (No eXecute) veya AMD'nin Execute Disable (XD) bitini kullanır. Bu bit, bellek sayfalarının yürütülebilir veya yürütülemez olarak işaretlenmesini sağlar. Donanımsal VEB, yazılımsal VEB'e göre daha güvenilirdir çünkü işlemci seviyesinde koruma sağlar.
Yazılımsal VEB: Bu yöntem, işletim sistemi tarafından emüle edilir. Yürütme izni olmayan bellek alanlarından kod yürütülmeye çalışıldığında işletim sistemi müdahale eder. Yazılımsal VEB, donanımsal VEB'in olmadığı durumlarda kullanılır ancak daha az güvenilirdir.
Çoğu modern işletim sistemi, VEB'i destekler. Örneğin:
/proc/cpuinfo
dosyasından NX bitinin etkin olup olmadığı kontrol edilebilir. SELinux ve AppArmor gibi güvenlik modülleri de VEB benzeri işlevler sunar.Windows'ta VEB'i etkinleştirmek veya devre dışı bırakmak için şu adımlar izlenebilir:
bcdedit.exe /set {current} nx AlwaysOn
bcdedit.exe /set {current} nx OptOut
Uyarı: VEB'i devre dışı bırakmak, sistemin güvenliğini önemli ölçüde azaltabilir. Sadece zorunlu durumlarda ve dikkatli bir şekilde devre dışı bırakılmalıdır.
Veri Yürütme Engellemesi (VEB), bilgisayar sistemlerini kötü amaçlı yazılımlara karşı korumak için önemli bir güvenlik önlemidir. Belleğin belirli alanlarının yalnızca veri depolamak için kullanılmasını sağlayarak, kötü niyetli kodların yürütülmesini engeller. Ancak, VEB'in de sınırlamaları vardır ve tek başına mükemmel bir güvenlik çözümü değildir. Diğer güvenlik önlemleriyle birlikte kullanıldığında, sistem güvenliğini önemli ölçüde artırabilir. Gelişen siber güvenlik tehditleri karşısında VEB ve benzeri teknolojilerin önemi giderek artmaktadır.